{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "Using ridge regression to overcome linear regression's shortfalls"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "#Need lr from previous recipe\n",
    "from sklearn import datasets\n",
    "boston = datasets.load_boston()\n",
    "\n",
    "from sklearn.linear_model import LinearRegression\n",
    "lr = LinearRegression()\n",
    "\n",
    "lr.fit(boston.data, boston.target)\n",
    "\n",
    "\n",
    "from sklearn.datasets import make_regression\n",
    "reg_data, reg_target = make_regression(n_samples=2000,n_features=3, effective_rank=2, noise=10)\n",
    "\n",
    "import numpy as np\n",
    "n_bootstraps = 1000\n",
    "len_data = len(reg_data)\n",
    "subsample_size = np.int(0.5*len_data)\n",
    "subsample = lambda: np.random.choice(np.arange(0, len_data),size=subsample_size)\n",
    " \n",
    "coefs = np.ones((n_bootstraps, 3))\n",
    "for i in range(n_bootstraps):\n",
    "     subsample_idx = subsample()\n",
    "     subsample_X = reg_data[subsample_idx]\n",
    "     subsample_y = reg_target[subsample_idx]\n",
    "     lr.fit(subsample_X, subsample_y)\n",
    "     coefs[i][0] = lr.coef_[0]\n",
    "     coefs[i][1] = lr.coef_[1]\n",
    "     coefs[i][2] = lr.coef_[2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xb3b0b00>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "plt.figure(figsize=(10, 5))\n",
    " \n",
    "ax1 = plt.subplot(311, title ='Coef 0')\n",
    "ax1.hist(coefs[:,0])\n",
    " \n",
    "ax2 = plt.subplot(312,sharex=ax1, title ='Coef 1')\n",
    "ax2.hist(coefs[:,1])\n",
    " \n",
    "ax3 = plt.subplot(313,sharex=ax1, title ='Coef 2')\n",
    "ax3.hist(coefs[:,2])\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.linear_model import Ridge\n",
    "r = Ridge()\n",
    "n_bootstraps = 1000\n",
    "len_data = len(reg_data)\n",
    "subsample_size = np.int(0.5*len_data)\n",
    "subsample = lambda: np.random.choice(np.arange(0, len_data),size=subsample_size)\n",
    "\n",
    "coefs_r = np.ones((n_bootstraps, 3))\n",
    "for i in range(n_bootstraps):\n",
    "     subsample_idx = subsample()\n",
    "     subsample_X = reg_data[subsample_idx]\n",
    "     subsample_y = reg_target[subsample_idx]\n",
    "     r.fit(subsample_X, subsample_y)\n",
    "     coefs_r[i][0] = r.coef_[0]\n",
    "     coefs_r[i][1] = r.coef_[1]\n",
    "     coefs_r[i][2] = r.coef_[2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nE2RJkiSpy/8PEzYVb2izfncAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xb0009e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "plt.figure(figsize=(10, 5))\n",
    " \n",
    "ax1 = plt.subplot(311, title ='Coef 0')\n",
    "ax1.hist(coefs_r[:,0])\n",
    " \n",
    "ax2 = plt.subplot(312,sharex=ax1, title ='Coef 1')\n",
    "ax2.hist(coefs_r[:,1])\n",
    " \n",
    "ax3 = plt.subplot(313,sharex=ax1, title ='Coef 2')\n",
    "ax3.hist(coefs_r[:,2])\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 264.2537415 ,  488.659325  ,  286.19314315])"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.var(coefs, axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 19.62226776,  16.92848366,  18.44619886])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.var(coefs_r, axis=0) "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
